﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using VietKinsNutrition.Bussiness;
using VietKinsNutrition.Common;
using VietKinsNutrition.Data;
using System.Globalization;

namespace VietKinsNutrition.ThucPham
{
    public partial class FrmChonxuatthucpham : DevExpress.XtraEditors.XtraForm
    {
        int iLoad = 0;
        ClsThucdon_monanBLL ClsThucdon_monanbll = new ClsThucdon_monanBLL();
        ClsTblDm_BuaantrongngayBLL ClsTblDm_Buaantrongngaybll = new ClsTblDm_BuaantrongngayBLL();
        public DataTable ReturnTbl;
        static int iValeTongsotre;
        static ClsTblGiaBLL ClsTblGiabll;
        static int iGiatien = 0;
        ClsTblDm_XuatkhoBLL ClsTblDm_Xuatkhobll = new ClsTblDm_XuatkhoBLL();
        ClsTblDm_NhapthucphamBLL ClsTblDm_Nhapthucpham_bll;
        ClsTblDm_SosanhnangluonBLL ClsTblDm_Sosanhnangluon_bll = new ClsTblDm_SosanhnangluonBLL();

        public FrmChonxuatthucpham()
        {
            InitializeComponent();
            ClsThucdon_monanbll = new ClsThucdon_monanBLL();
            ClsTblDm_Xuatkhobll = new ClsTblDm_XuatkhoBLL();
            ClsTblGiabll = new ClsTblGiaBLL();
            ClsTblDm_Nhapthucpham_bll = new ClsTblDm_NhapthucphamBLL();
        }

        private void FrmChonxuatthucpham_Load(object sender, EventArgs e)
        {
            ClsThucdon_monanbll.Bind_Khoilop(cboKhoilop);
            UserComboBoxItem.SelectItem(cboKhoilop, "1");
            iLoad = 1;
            datNgay.EditValue = DateTime.Now;
            datDen.EditValue = DateTime.Now;
        }

        int iTongsotre = 0;
        private void Tongsotrebaoan()
        {
            DataTable TongsotreTbl = new DataTable();
            // trả về tổng sô trẻ.
            try
            {
                TongsotreTbl = ClsTblDm_Sosanhnangluon_bll.GetTongsotre(Convert.ToInt32(UserComboBoxItem.GetItemValue(cboKhoilop)), ParamCls.NamhocId, Convert.ToDateTime(datNgay.EditValue));
            }
            catch { return; }
            if (TongsotreTbl.Rows.Count > 0)
            {
                iTongsotre = int.Parse(TongsotreTbl.Rows[0]["Tongsosuat"].ToString());
            }
            iValeTongsotre = iTongsotre;
            //label5.Text = "Tổng trẻ ăn:" + " " + iTongsotre.ToString();
        }

        private void cboKhoilop_EditValueChanged(object sender, EventArgs e)
        {
            if (iLoad == 0)
                return;
            if (grdHoadon.RowCount == 0)
            {
                try
                {
                    grdDukien.GridControl.DataSource = ((DataTable)grdDukien.GridControl.DataSource).Clone();
                }
                catch { }
                try
                {
                    grdToantruong.GridControl.DataSource = ((DataTable)(grdToantruong.GridControl.DataSource)).Clone();
                }
                catch { }
                try
                {
                    grdMonan.GridControl.DataSource = ((DataTable)(grdMonan.GridControl.DataSource)).Clone();
                }
                catch { }
                //DGird_Danhsachthucphamcanxuat.DataSource
                //DgdTyle_PLG
                lbBaoan.Text = "0";
            }
            try
            {
                grdMonan.GridControl.DataSource = ClsThucdon_monanbll.SelectByNgayanKhoilop(DateTime.Parse(grdHoadon.GetFocusedRowCellValue("NgayNX").ToString()), Convert.ToInt32(UserComboBoxItem.GetItemValue(cboKhoilop)));
                Tongsotrebaoan();
                lbBaoan.Text = iValeTongsotre.ToString();

                try
                {
                    iGiatien = 0;
                    if (ClsTblGiabll.ReturnTblSelectAll().Rows.Count > 0)
                    {
                        if (cboKhoilop.Text.Trim().ToUpper() == "NHÀ TRẺ")
                        {
                            iGiatien = int.Parse(ClsTblGiabll.ReturnTblSelectAll().Rows[0]["nhatre"].ToString());
                        }
                        if (cboKhoilop.Text.Trim().ToUpper() == "MẪU GIÁO")
                        {
                            iGiatien = int.Parse(ClsTblGiabll.ReturnTblSelectAll().Rows[0]["maugiao"].ToString());
                        }
                        if (cboKhoilop.Text.Trim().ToUpper() == "")
                        {
                            iGiatien = 0;
                        }
                    }
                }
                catch { }
                //LblDuocchi.Text = "Được chi:" + (iGiatien * iValeTongsotre).ToString() + " VNĐ ";
                // nếu xuất rồi thì load lên
                grdDukien.GridControl.DataSource = this.ClsTblDm_Xuatkhobll.TblXuatchokhoilop_ByKhoilop_Ngay(DateTime.Parse(grdHoadon.GetFocusedRowCellValue("NgayNX").ToString()), Convert.ToInt32(UserComboBoxItem.GetItemValue(cboKhoilop)));
                grdCtrlToantruong.DataSource = this.ClsTblDm_Xuatkhobll.TblHoadonnhapxuatReturnDSxuatthucpham_PLG_ByNgay(DateTime.Parse(grdHoadon.GetFocusedRowCellValue("NgayNX").ToString()));
                // tổng tiền;
                //TxtTongtienanchotre.Text = this.ReturnTongtienan(DGird_Danhsachthucphamcanxuat).ToString("#,##0");
                //nếu chưa xuất thì load dữ liệu từ form Kh
                ClsTblDm_Sosanhnangluon_bll.CalculatorTPDD(Convert.ToInt32(UserComboBoxItem.GetItemValue(cboKhoilop)), cboKhoilop.Text, Convert.ToInt32(lbBaoan.Text), grdDukien, grdTyle, "TẤT CẢ");
                    //CalculatorTPDD(, , , );
            }
            catch { }
        }

        private void datNgay_EditValueChanged(object sender, EventArgs e)
        {
            if (datNgay.DateTime > datDen.DateTime)
            {
                return;
            }
            else
            {
                datDen_EditValueChanged(sender, e);
            }
        }

        private void datDen_EditValueChanged(object sender, EventArgs e)
        {
            if (datNgay.DateTime > datDen.DateTime)
            {
                return;
            }
            else
            {
                ClsTblDm_Xuatkhobll.SetHoadonbyBgDatetimeAndEndDatetime(grdHoadon, datNgay.DateTime, datDen.DateTime);
                cboKhoilop_EditValueChanged(sender, e);
            }
        }

        private void grdHoadon_Click(object sender, EventArgs e)
        {
            try
            {
                cboKhoilop_EditValueChanged(sender, e);
                Tongsotrebaoan();
            }
            catch { }
        }

        private void btnCapnhattoantruong_Click(object sender, EventArgs e)
        {
            try
            {
                DataGridView Grd = new DataGridView();
                if (grdHoadon.RowCount == 0)
                    return;
                if (this.ClsTblDm_Xuatkhobll.TblHoadonnhapxuat_GetId_ByNgay(DateTime.Now).Rows.Count > 0)
                {
                    XtraMessageBox.Show("Ngày hiện tại đang có hóa đơn xuất, hệ thống không cho phép ứng dụng");
                    return;
                }
                if (XtraMessageBox.Show("Bạn chắc chắn Ứng dung?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }
                DataTable TblKhoi = ClsThucdon_monanbll.Tbl_Khoilop();
                DataTable TblBaoan;
                for (int iKhoi = 0; iKhoi < TblKhoi.Rows.Count; iKhoi++)
                {
                    TblBaoan = ClsTblDm_Sosanhnangluon_bll.GetTongsotre((int)TblKhoi.Rows[iKhoi]["Id"], ParamCls.NamhocId, DateTime.Now);
                    ClsTblDm_Xuatkhobll.Delete_ALL_XuathangchokhoiBy(DateTime.Now, (int)TblKhoi.Rows[iKhoi]["Id"]);
                    if (TblBaoan.Rows.Count == 0 || TblBaoan.Rows[0]["Tongsosuat"] == null || TblBaoan.Rows[0]["Tongsosuat"].ToString() == "0")
                    {
                        continue;
                    }
                    DataTable TblDk = this.ClsTblDm_Xuatkhobll.TblXuatchokhoilop_ByKhoilop_Ngay(DateTime.Parse(grdHoadon.GetFocusedRowCellValue("NgayNX").ToString()), (int)TblKhoi.Rows[iKhoi]["Id"]);
                    for (int i = 0; i < TblDk.Rows.Count; i++)
                    {
                        // cập nhật lại toàn bộ ở đây.
                        ClsTblDm_Xuatkhobll.Insert_XuathangchokhoiBy(DateTime.Now, (int)TblKhoi.Rows[iKhoi]["Id"], (int)TblDk.Rows[i]["Thucpham_thucanId"], TblDk.Rows[i]["Soluongxuat"].ToString(), TblDk.Rows[i]["dongia"].ToString());
                    }
                }
                XtraMessageBox.Show("Ứng dụng thành công");
            }
            catch
            {
            }
        }

        DataRow dr; string sTieude, sTenso, sTentruong, sTenphong;
        private void btnIn_Click(object sender, EventArgs e)
        {
            NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
            nfi.NumberGroupSeparator = ".";
            nfi.NumberDecimalSeparator = ",";
            string tt = grdToantruong.Columns["Thanhtien"].SummaryItem.SummaryValue.ToString();
            if (grdDukien.RowCount <= 0)
                return;
            ClsTblTruonghocBLL ClsTblTruonghocbll = new ClsTblTruonghocBLL();
            ClsExport2ExcelBLL ClsExport2Excelbll = new ClsExport2ExcelBLL();
            DataTable Tbl = ClsTblTruonghocbll.ReturnTblTRuong();
            if (Tbl.Rows.Count > 0)
            {
                dr = Tbl.Rows[0];
                sTenso = dr["TensoGD"].ToString();
                sTentruong = dr["Tentruong"].ToString();
                sTenphong = dr["TenphongGD"].ToString();
                sTieude = "THỰC PHẨM DỰ KIẾN CHO KHỐI: " + cboKhoilop.Text.ToUpper();
                saveFileDialog1.FileName = sTieude;
            }
            //  ClsExport2Excelbll.ExportFileExel(sTieude, sTenso, sTenphong, sTentruong, ".xls", this.DGird_DanhsachthucphamcanxuatKHOILOP);


            DataTable tg = (DataTable)(grdDukien.GridControl.DataSource);
            DataTable tblhoadon = tg.Copy();
            try
            {
                tblhoadon.Columns.Remove("Thucpham_ThucanId");
                tblhoadon.Columns.Remove("DonvitinhId");
                tblhoadon.Columns.Remove("NgayNX");
            }
            catch { }
            System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("VietKinsNutrition.Resources." + "Xuat thuc pham.xls");
            ClsDanhsachNV.Hoadon_xuat(stream, "Xuat thuc pham.xls", sTenso, sTenphong, sTentruong, sTieude, tblhoadon, tt);
        }

        private void btnIntoantruong_Click(object sender, EventArgs e)
        {
            DataTable TblFindHoadon = this.ClsTblDm_Xuatkhobll.TblHoadonnhapxuat_GetId_ByNgay(datNgay.DateTime);
            NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
            nfi.NumberGroupSeparator = ".";
            nfi.NumberDecimalSeparator = ",";
            string tt = grdToantruong.Columns["Thanhtien"].SummaryItem.SummaryValue.ToString();
            if (TblFindHoadon.Rows.Count == 0)
            {
                XtraMessageBox.Show("Chưa có hóa đơn xuất");
                return;
            }
            if (this.grdToantruong.RowCount > 0)
            {
                ClsTblDmTruonghocDAL ClsTblDmTruonghocdal = new ClsTblDmTruonghocDAL();
                DataTable dt = ClsTblDmTruonghocdal.TblTruong();
                DataRow dr = dt.Rows[0];
                sTenso = dr["TensoGD"].ToString();
                sTentruong = dr["Tentruong"].ToString();
                sTenphong = dr["TenphongGD"].ToString();
                sTieude = "Hóa đơn xuất hàng trong ngày ".ToUpper();
                if (grdToantruong.RowCount > 0)
                {
                    int SHD;
                    SHD = int.Parse(TblFindHoadon.Rows[0]["Id"].ToString());
                    //   ClsTblDm_Nhapthucpham_bll.ExportFileExel(this.Dgrid_Chitietnhapthucpham, this.saveFileDialog1, textTongtien, SHD);
                    DataTable tg = (DataTable)grdToantruong.GridControl.DataSource;
                    DataTable tblhoadon = tg.Copy();
                    try
                    {
                        tblhoadon.Columns.Remove("Thucpham_ThucanId");
                        tblhoadon.Columns.Remove("DonvitinhId");
                        tblhoadon.Columns.Remove("Kcalo");
                        tblhoadon.Columns.Remove("Protid_DV");
                        tblhoadon.Columns.Remove("Lipid_DV");
                        tblhoadon.Columns.Remove("Protid_TV");
                        tblhoadon.Columns.Remove("Lipid_TV");
                        tblhoadon.Columns.Remove("GlucId");
                        tblhoadon.Columns.Remove("Tylequydoi");
                        tblhoadon.Columns.Remove("Tylethai");
                        tblhoadon.Columns.Remove("NgayNX");

                    }
                    catch { }
                    System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("VietKinsNutrition.Resources." + "Hoa don nhap hang.xls");
                    ClsDanhsachNV.Hoadon_nhap(stream, "Hoa don nhap hang.xls", sTenso, sTenphong, sTentruong, sTieude, tt, SHD, tblhoadon, datNgay.DateTime.ToString("dd-MM-yyyy"));
                }
            }
        }

    }
}